package away3d.audio.drivers ;



//import flash.geom.* ;
//import flash.media.* ;


class AbstractSound3DDriver
{
    
    
    private  var _ref_v     : Vector3D<Float> ;
    private  var _src       : Sound ;
    private  var _volume    : Float ;
    private  var _scale     : Float ;
    
    private  var _mute      : Bool ;
    private  var _paused    : Bool ;
    private  var _playing   : Bool ;
    
    
    
    public function AbstractSound3DDriver()
    {
        
        _volume     = 1 ;
        _scale      = 1000 ;
        _playing    = false ;
        
    }
    
    
    public var sourceSound( get_sourceSound, set_sourceSound ) : Sound ;
    
    
    private function get_sourceSound() : Sound
    {
        
        return _src ;
        
    }
    
    
    private function set_sourceSound( val: Sound ) : Sound
    {
        
        if( _src == val )
        {
            return _src ;
        }
        
        _src = val ;
        
    }
    
    
    public var volume( get_volume, set_volume ) : Float ;
    
    
    private function get_volume() : Float
    {
        
        return _volume ;
        
    }
    
    
    private function set_volume( val: Float ) : Float
    {
        
        _volume = val ;
        return val ;
        
    }
    
    
    public var scale( get_scale, set_scale ) : Float ;
    
    
    private function get_scale() : Float
    {
        
        return _scale ;
        
    }
    
    
    private function set_scale( val: Float )
    {
        
        _scale = val ;
        return val ;
        
    }
    
    
    public var mute( get_mute, set_mute ) : Bool ;
    
    
    private function get_mute() : Bool
    {
        
        return _mute ;
        
    }
    
    
    private function set_mute( val : Bool ) : Bool
    {
        
        if( _mute == val )
        {
            
            return ;
            
        }
        
        _mute = val ;
        return val ;
        
    }
    
    
    public function updateReferenceVector( v: Vector3D<Float> )
    {
        
        this._ref_v = v ;
        
    }
    
    
}